﻿using HCMS.CommonDtos;
using HCMS.Entities.Manage;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace HCMS.IRepositories.Manage
{
    /// <summary>
    /// 管理 菜单
    /// </summary>
    public interface IMenuRepository : ICommonRepository<Menu, int>
    {
        /// <summary>
        /// 管理 列表
        /// </summary>
        /// <param name="searchArgs">搜索 参数</param>
        /// <param name="pager">分页 参数</param>
        /// <returns></returns>
        Task<ListPagerDto<Menu>> ManageList(SearchArgsDto searchArgs, PagerArgsDto pager);

        /// <summary>
        /// 菜单 树
        /// </summary>
        /// <param name="status">状态</param>
        /// <returns></returns>
        Task<object> GetAllTree(int status = 9999);

        /// <summary>
        /// 获取管理系统 菜单树
        /// </summary>
        /// <param name="menuIds">已选中菜单 Ids</param>
        /// <returns></returns>
        Task<List<ManageMenuTreeDto>> GetManageMenuTree(List<int> menuIds);

        /// <summary>
        /// 根据 菜单 Id 获取关联的菜单列表
        /// </summary>
        /// <param name="menuIds">菜单 Id</param>
        /// <returns></returns>
        Task<List<Menu>> GetMenuListByIds(List<int> menuIds);
    }
}
